Le jeu Pong

Durée estimée: 45 minutes

Version textuelle

Présentation

Pong a été un des premiers jeux sur ordinateur.
Il comprend une raquette, controlée par l'utilisateur et une balle. Dans sa version la plus simple, la balle rebondit sur les murs et la raquette, et l'utilisateur essaie d'empêcher la balle de toucher le mur du bas.
Le jeu est fini quand la balle touche le mur du bas.
Il y a plusieurs Variantes du jeu avec le décompte des points, les vies multiples, l'accélération de la balle, les effets sonores, etc.

Objectifs:
Dans cette leçon, vous allez apprendre à :

  • améliorer ou compléter un programme de façon incrémentale;
  • voir que la sélection avec si/sinon (if/else) est une structure de contrôle dans les algorithmes;
  • définir et utiliser une procédure avec un paramètre;
  • définir une instruction si/sion (if/else) permettant d'évaluer plus d'une condition.

Tutoriel de l'application Pong de base

Pour cette leçon vous avez le choix : vous pouvez suivre le tutoriel vidéo qui va vous guider dans la construction du jeu Pong à partir du début, ou vous pouvez démarrer à partir d'une version de base existante et ajouter des améliorations. Quelle que soit l'option que vous choisissez, à la fin de cette leçon, vous aurez construit une jolie petite application pour jouer à Pong avec des effets sonores.

Option 1: Construire Pong à partir du début

Pour suivre le tutoriel vidéo, ouvrez App Inventor dans un onglet séparé puis cliquez sur la partie supérieure des icônes des vidéos pour les ouvrir en plein écran. (Vous pouvez aussi double-cliquer sur l'icône et utiliser la touche escape pour sortir. Evitez de démarrer plusieurs vidéos en même temps.Vous pouvez les arrêter avec le bouton pause).
Quand vous avez fini, vous pouvez passer aux améliorations proposées dans l'option 2.

1. Déplacer la balle
5:29
2. Mouvement aléatoire
2:21
3. Rebondir sur les bords
4:23
4. Déplacer la raquette
2:46
5. Compter les points
5:47

Option 2: Améliorer l'application Pong de base

Si vous avez choisi cette option (ou que vous avez terminé la première), vous démarrez avec une application Pong qui comprend une balle qui se déplace dans le cadre (canvas) et rebondit sur les bords et la raquette. Vous allez ajouter plusieurs améliorations au jeu comme le décompte des points et les effets sonores.

Pour commencer, ouvrez la fiche pour cette leçon dans un onglet séparé. Cette fiche propose une vue d'ensemble du code de l'application de base. Ouvrez ensuite App Inventor with the Pong Basic template, ou repartez de l'application que vous avez déjà construite sis vous avez réalisé la versiond e base avec l'option 1.

Améliorations

Apportez les améliorations suivantes en suivant les recommandations ou suggestions.

  1. Décompte du score: Ajoutez une procédure avec un paramètre et des instructions (blocs) pour coder la fonction de décompte du score. (Note: si vous avez suivi l'Option 1, vous l'avez déjà fait.)
  2. Gérer le fin du jeu: Modifiez le gestionnaire d'évènement quand balle.Boird attenint (when Ball1.EdgeReached), pour terminer le jeu quand la balle touche le bord du bas.
  3. Ajouter des effets sonores: Ajoutez des sons lorsque la balle touche les bords ou la balle. Choisissez plutôt des sons différents. Les fichiers sons, sont déjà présents dans le modèle de départ, si vous avez commencé par l'option 2. (Si vous venez de l'option 1 et que vous avez commencé cette option à partir de votre propore version, vous devrez télécharger des sons depuis une source ouverte).
  4. Programmation avancée: Ajoutez une case à cocher pour permettre à l'utilisateur de mettre/couper le son.

Auto-contrôle

Not yet started
1 point
Lequel parmi les composansts suivants doit toujours être utilisé avec une Balle ?
Not yet started
1 point
Vrai ou Faux: Les composants Balle et Image Lutin (ImageSprite) ont les mêmes propriétiés, gestionnaires d'évènements (event handlers), procédures, et blocs de mise à jour ou de lecture de ces propriétés(setters et getters) ?
Not yet started
1 point
A quoi servent les blocs Si/Sinon (ou If/else) dans les programmmes d'une application ?
Cochez toutes les réponses valides.
Not yet started
1 point
Quel évènement permet de détecter que la balle a dépassé la raquette et a atteint le bord bas de l'écran ?
Not yet started
1 point
Quelle valeur doit-on mettre dans la prpriété 's (Heading) pour que la ball se déplace vers la gauche de l' écran ?
1 point
1 point  

Pour votre Portfolio

Créez une page nommée "Pong" dans la catégorie "Réflexions" de votre portfolio, puis répondez aux questions suivantes :

  1. Décrivez et fournissez le pseudo-code de la procédure que vous avez réalisé pour compter le score (Amélioration n°1).
  2. Décrivez et fournissez le pseudo-code de l'algorithme que vous avez réalisé pour mettre et couper le son avec une case à cocher.
N'oubliez pas de joindre des copies d'écran à vos explications pour chacune de vos améliorations.